package com.vcc.service.service;


import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.vcc.data.entity.BossUser;
import com.vcc.service.boss.request.bossUser.BossRegisterRequest;

import java.util.List;

public interface BossUserService extends IService<BossUser> {

    BossUser login(String account);

    BossUser login(String account, String password);

    BossUser register(BossRegisterRequest bossRegisterRequest, Long opUserId);

    public Page<BossUser> paging(
            Page<BossUser> pageable,
            Long targetId,
            String username,
            String email,
            String account,
            String invitationCode,
            Integer status);

    String getAccountById(Long Id);

    String getUserNameById(Long id);

    Boolean updateStatusById(Long userId, Integer status);

    boolean updatePasswordById(Long id, String password);

    boolean updateAccountById(Long id, String account);

    boolean updateEmailById(Long id, String email);

    boolean updateUsernameById(Long id, String username);

    BossUser getByEmail(String email);

    Boolean existsByEmail(String email);


    Boolean bindGoogle(Long id, String googleSecret);

    Long getByInvitationCode(String invitationCode);

    Boolean existByInvitationCode(String invitationCode);

    Boolean existsById(Long id);

    Boolean clearGoogle(Long id);


    List<BossUser> listByEmailLike(String email);


    Long getParentIdById(Long id);


    Integer getStatusById(Long id);

    Boolean updateAdminRemarkById(Long id, String adminRemark);
}
